package com.yida.wy.vote.outside.service.impl;

import com.yida.common.core.utils.DateUtils;
import com.yida.common.core.utils.StringUtils;
import com.yida.common.security.utils.SecurityUtils;
import com.yida.wy.vote.outside.domain.WyVoteResult;
import com.yida.wy.vote.outside.domain.dto.WyVoteResultDTO;
import com.yida.wy.vote.outside.mapper.WyVoteResultMapper;
import com.yida.wy.vote.outside.service.IWyVoteResultService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 投票结果Service业务层处理
 *
 * @author lqq
 * @date 2023-03-22
 */
@Service
public class WyVoteResultServiceImpl implements IWyVoteResultService {

	@Resource
	private WyVoteResultMapper voteResultListMapper;

	/**
	 * 查询投票结果
	 *
	 * @param resultId 投票结果主键
	 * @return 投票结果
	 */
	@Override
	public WyVoteResultDTO selectVoteResultByResultId(Long resultId) {
		return voteResultListMapper.selectVoteResultByResultId(resultId);
	}

	/**
	 * 查询投票结果列列表（只查已选择的）
	 *
	 * @param voteResult 投票结果
	 * @return 投票结果列
	 */
	@Override
	public List<WyVoteResultDTO> selectVoteResultList(WyVoteResultDTO voteResult) {
		return voteResultListMapper.selectVoteResultList(voteResult);
	}

	/**
	 * 查询投票结果列列表
	 *
	 * @param voteResult 投票结果
	 * @return 投票结果列
	 */
	@Override
	public List<WyVoteResultDTO> selectVoteResultDtoList(WyVoteResultDTO voteResult) {
		return voteResultListMapper.selectVoteResultDtoList(voteResult);
	}

	/**
	 * 新增投票结果列
	 *
	 * @param voteResult 投票结果
	 * @return 结果
	 */
	@Override
	public int insertVoteResult(WyVoteResult voteResult) {
		voteResult.setCreateBy(StringUtils.isNull(SecurityUtils.getLoginUser()) ? "" : SecurityUtils.getLoginUser().getSysOutsideUser().getRealName());
		voteResult.setCreateTime(DateUtils.getNowDate());
		return voteResultListMapper.insertVoteResult(voteResult);
	}

	/**
	 * 新增投票结果
	 *
	 * @param voteResults 投票结果
	 * @return 结果
	 */
	@Override
	public int insertBatchVoteResult(List<WyVoteResult> voteResults) {
		return voteResultListMapper.insertBatchVoteResult(voteResults);
	}

	/**
	 * 修改投票结果列
	 *
	 * @param voteResult 投票结果列
	 * @return 结果
	 */
	@Override
	public int updateVoteResult(WyVoteResult voteResult) {
		voteResult.setUpdateBy(StringUtils.isNull(SecurityUtils.getLoginUser()) ? "" : SecurityUtils.getLoginUser().getSysOutsideUser().getRealName());
		voteResult.setUpdateTime(DateUtils.getNowDate());
		return voteResultListMapper.updateVoteResult(voteResult);
	}

	/**
	 * 批量删除投票结果列
	 *
	 * @param resultIds 需要删除的投票结果列主键
	 * @return 结果
	 */
	@Override
	public int deleteVoteResultByResultIds(Long[] resultIds) {
		return voteResultListMapper.deleteVoteResultByResultIds(resultIds);
	}

	/**
	 * 删除投票结果列信息
	 *
	 * @param resultId 投票结果列主键
	 * @return 结果
	 */
	@Override
	public int deleteVoteResultByResultId(Long resultId) {
		return voteResultListMapper.deleteVoteResultByResultId(resultId);
	}

	/**
	 * 批量删除投票结果列
	 *
	 * @param houseCodes 需要删除的数据房屋标识码集合
	 * @param voteId     投票ID
	 * @return 结果
	 */
	@Override
	public int deleteVoteResultByHouseCodesAndVoteId(String[] houseCodes, Long voteId) {
		return voteResultListMapper.deleteVoteResultByHouseCodesAndVoteId(houseCodes, voteId);
	}
}
